package com.nxyfan.soft.utils;

import java.math.BigDecimal;
import org.springframework.util.Assert;

/** 
 *
 * Describe: 金钱工具类
 * Author: Admin  
 * Create Time: 2023年6月21日 下午2:11:27 
 * Copyright @ 2023 51LIFE  
 */
public class MoneyUtils {


	private MoneyUtils() {}

	/**
	 * 将单位为元的金额转换为单位为分
	 *
	 * @param yuan 单位为元的字符型值
	 * @return
	 */
	public static int yuan2Fen(String yuan) {
		int value = 0;

		try {
			BigDecimal var1 = new BigDecimal(yuan);
			BigDecimal var2 = new BigDecimal(100);
			BigDecimal var3 = var1.multiply(var2);
			value = Integer.parseInt(var3.stripTrailingZeros().toPlainString());
		} catch (Exception e) {
			throw new IllegalArgumentException(String.format("非法金额[%s]", yuan));
		}

		Assert.isTrue(value >= 0, String.format("非法金额[%s]", yuan));
		return value;
	}

	/**
	 * 将单位为分的金额转换为单位为元
	 * 
	 * @param fen 单位为分的字符型值
	 * @return
	 */
	public static String fen2Yuan(int fen) {
		BigDecimal var1 = new BigDecimal(fen);
		BigDecimal var2 = new BigDecimal(100);
		BigDecimal var3 = var1.divide(var2);
		return var3.stripTrailingZeros().toPlainString();
	}

	/**
	 * 将单位为分的金额转换为单位为元
	 * 
	 * @param fen 单位为分的字符型值
	 * @return
	 */
	public static BigDecimal fen2YuanDecimal(int fen) {
		BigDecimal var1 = new BigDecimal(fen);
		BigDecimal var2 = new BigDecimal(100);
		BigDecimal var3 = var1.divide(var2);
		return var3;
	}
	
	public static void main(String[] args) {
		System.out.println();
	}
}